Memory on a server is a limited resource that is shared by all processes executing on the server. A memory management system of the server handles requests to allocate memory to processes based on an amount of free memory on the server. The memory management system also releases memory when processes no longer need the memory. Unfortunately, existing memory management systems do not account for quality-of-service requirements of the processes when allocating memory to the processes. For example, consider a first request to allocate memory to a first process and a second request to allocate memory to a second process. Assume that the first request is received before the second request. Also assume that the second request has a higher quality-of-service requirement than the first process. In other words, the resources of the server should be prioritized for use by the second process before the first process. However, since the first request is received before then second request, the memory management system allocates memory to the first process. If the amount of free memory on the server is low, there might not be enough memory to allocate to the second process when the second request is received. Thus, the quality-of-service requirement of the second process may not be achieved.